using System;
using System.Runtime.Serialization;

namespace SharedObjects
{
	[DataContract]
	public class Account : EntityBase
	{
		[DataMember]
		[Required]
		public DateTime RegistrationDateReal { get; set; }

		[DataMember]
		[Required]
		public DateTime RegistrationDateWorld { get; set; }
		
		[DataMember]
		[Required]
		public string Login { get; set; }
		
		[DataMember]
		[Required]
		public string Password { get; set; }
		
		[DataMember]
		public bool HasLoggedIn { get; set; }
		
		[DataMember]
		public bool IsAdmin { get; set; }
		
		[DataMember]
		[Required]
		public AccountStatus AccountStatus { get; set; }
		
		[DataMember]
		[Required]
		public Agent Agent { get; set; }
	}

	public enum AccountStatus
	{
		Active,
		TempBanned,
		PermBanned,
		Unpaid,
		Incomplete
	}
}